#ifndef UNI_CELL_HPP
#define UNI_CELL_HPP

#include "structCellBase.hpp"

namespace hms {

template<>
class CellTraits<UniCell> : public StructCellTraits
{
public:
	using MeshType     = UniMesh;
	using CentroidType = Vector2s;
};

class UniCell : public StructCellBase<UniCell>
{
public:
	using Traits = CellTraits<UniCell>;
	using MeshType     = Traits::MeshType;
	using CentroidType = Traits::CentroidType;
	
private:
	UniCell( const UniMesh&, Index );
	UniCell( const UniMesh&, Index, Index );

	auto areaImp() const -> scalar;
	auto circumfImp() const -> scalar;
	auto centroidImp() const -> CentroidType;
	
	friend CellBase;
	friend StructMeshBase<UniMesh>;
};


} // end namespace hms

#endif